package org.leiyang.service;

import org.leiyang.common.dtos.R;
import org.leiyang.common.dtos.MsgDTO;
import reactor.core.publisher.Mono;

import java.util.List;

/**
 * 离线消息的处理
 */
public interface OfflineMessageService {

    /**
     * 获取用户A与用户B的聊天记录(不包括未接收状态的消息)
     * 待改为分页方式查询
     * @param currentUid 当前用户ID
     * @param toUid 对方用户ID
     * @return 聊天记录
     */
    Mono<R<List<MsgDTO>>> listAllHistoryMsgs(Long currentUid, Long toUid, Integer currentPage);

    /**
     * 当用户上线时，将其下的离线消息发送给他
     * @param uid 用户ID
     * @param clientIp 客户端的出口IP
     */
    Mono<Boolean> offlineMsgsSendWhenLogin(Long uid, String clientIp);

}
